/**
 * 使用以下方法 请注意首先使用 sino.isApp() 来判断当前是否运行在APP环境中 如果不是则以下方法不可调用
 * 通过 cordova.sino 来调用以下方法
 * Created by LHY on 16/3/1.
 */

$(document).ready(function(){
	if(window.cordova){
		var _sino = cordova.sino = cordova.sino || {};
		var _argsMap = {
			"1001": "getVersion",
			"2005": "scanIDCard",
			"2006": "scanBankCard",
			"2007": "scanVisitingCard",
			"3003": "takePhoto",
			"3001": "showSignViewController",
			"3002": "showCameraViewController",
			"4005": "openLocalURL",
			"6666": "LivenessDetection",
			"6001": "entryPreservation",//进入移动保全
			"6002": "entryLocalSysFromOtherSys"//移动保全返回

		};
		
		/**
         * 获取在开始时由原生传送过来的数据
         * 该方法一般无需调用 页面在加载时会自动调用该方法 同时将数据保存到 sino.appTransData 中
         * @param callback 接收两个参数 flag: 0 失败 1成功  data: 成功返回数据 失败返回错误信息
         */
	    _sino.LivenessDetection = function(callback,data){
            execSinoPlugin('6666',callback,data);
        };
        
		/**
		 * App成功初始化之后获取App的版本和App中H5文件的版本
		 * 第一次在登录页面调用
		 * @param callback
		 * 回调函数返回两个数据 "ResourceVersion","AppVersion"
		 */
		_sino.getVersion = function(callback){
			execSinoPlugin('1001',callback);
		};
		//S2019012807164 - 信易通OCR识别功能 add by csf 20190414 start
		/**
		 * 扫描读取身份证信息
		 * @param {Object} callback
		 */
		_sino.getIDCardInfo = function(callback,param){
			execSinoPlugin('2005',callback,param);
		};
		/**
		 * 扫描读取银行卡信息
		 * @param {Object} callback
		 */
		_sino.getBankCardInfo = function(callback,param){
			execSinoPlugin('2006',callback,param);
		};
		//S2019012807164 - 信易通OCR识别功能 add by csf 20190414 end
		/**
		 * 扫描读取名片信息
		 * @param {Object} callback
		 */
		_sino.getVisitCardInfo = function(callback){
			execSinoPlugin('2007',callback);
		};
		/**
		 * 确认身份证信息
		 * @param {Object} callback
		 */
		_sino.confirmIDCardInfo = function(callback,data){
			execSinoPlugin('2008',callback,data);
		};
		/**
		 * 确认银行卡信息
		 * @param {Object} callback
		 */
		_sino.confirmBankCardInfo = function(callback,data){
			execSinoPlugin('2009',callback,data);
		};

		/**
		 * 确认名片信息
		 * @param {Object} callback
		 */
		_sino.confirmVisitCardInfo = function(callback,data){
			execSinoPlugin('2010',callback,data);
		};

		/**
		 * 签名接口
		 * @param {Object} callback
		 */
		_sino.digitalSignature = function(callback,data){
			execSinoPlugin('3001',callback,data);
		};
		
		/**
         * 拍照接口_北京CA
         * @param {Object} callback
         */
		_sino.takePhoto = function(callback,data){
			execSinoPlugin('3002',callback,data);
		};
		
		 /**
         * 拍照接口_自带
         * @param {Object} callback
         */
		_sino.takePhotoOther = function(callback,data){
			execSinoPlugin('3003',callback,data);
		};

		/**
		 * 调用打开PDF 方法
		 * @param url callback(flag,data) flag: 0 失败 1成功  data: 成功返回数据 失败返回错误信息
		 * @param callback
		 */
		_sino.openPDF = function(callback,data){
			execSinoPlugin('4005',callback,data);
		}


		/**
		 * 从信易通2.0->移动保全
		 */
		_sino.entryOtherSys = function(callback,data){
			execSinoPlugin('6001',callback,data);
		};
		/**
		 * 从移动保全-->信易通2.0
		 */
		_sino.entryLocalSys= function(callback,data){
			execSinoPlugin('6002',callback,data);
		}

		function execSinoPlugin(id,fn,data){
			id = appVersion==='IOS'?_argsMap[id]:id;
			if(data) data = [data];
			else data = [];
			var result = {};
			cordova.exec(function(data) {
				//自定义 调用成功方法 返回参数为json对象。
				result.success = true;
				result.data = data;
				if(fn) fn(result);
			}, function(err) {
				//自定义 调用失败方法 返回参数为err
				result.success = false;
				result.data = err;
				if(fn) fn(result);

			}, "SignaPlugin", id, data);
		}

	}
});
